package com.liaoyifan.core.converter.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.mapstruct.Qualifier;

@SuppressWarnings("unused")
public interface DateTimeConversion {

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface ToEpochMillis {}

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface FromEpochMillis {}

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface ToLocalDateTime {}

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface ToLocalDate {}

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface FromLocalDateTime {}

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface FromLocalDate {}

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface ToDateTime {}

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface ToDate {}

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface FromDateTime {}

    @Qualifier @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.CLASS)
    @interface FromDate {}
}
